package com.yingxue.lesson.service;


import com.github.pagehelper.PageInfo;
import com.yingxue.lesson.entity.SysUser;
import com.yingxue.lesson.vo.req.LoginReqVO;

import com.yingxue.lesson.vo.req.UserAddReqVO;
import com.yingxue.lesson.vo.req.UserPageReqVO;
import com.yingxue.lesson.vo.req.userVo.UserOwnRoleReqVO;
import com.yingxue.lesson.vo.req.userVo.UserUpdateDetailInfoReqVO;
import com.yingxue.lesson.vo.req.userVo.UserUpdatePwdReqVO;
import com.yingxue.lesson.vo.req.userVo.UserUpdateReqVO;
import com.yingxue.lesson.vo.resp.LoginRespVO;
import com.yingxue.lesson.vo.resp.PageVO;
import com.yingxue.lesson.vo.resp.userVo.UserOwnRoleRespVO;

import java.util.List;

/**
 * @ClassName: UserService
 * TODO:类文件简单描述
 * @Author: 小霍
 * @UpdateUser: 小霍
 * @Version: 0.0.1
 */
public interface UserService {

    //用户登录
    LoginRespVO login(LoginReqVO vo);

    //分页查询所以用户
    PageVO<SysUser> pageInfo(UserPageReqVO vo);

    //添加用户
    void addUser(UserAddReqVO vo);

    //根据用户id获取用户拥有角色
    UserOwnRoleRespVO getUserOwnRole(String userId);

    //添加用户角色
    void addUserOwnRole(UserOwnRoleReqVO vo);

    //刷新token
    String refreshToken(String refreshToken);

    //更新用户
    void updateUserInfo(UserUpdateReqVO vo, String operationId);

    //批量/删除用户
    void deletedUsers(List<String> userIds, String operationId);

    //退出登录
    void logout(String accessToken,String refreshToken);

    //编辑个人信息 --获取个人信息
    SysUser detailUserInfo(String userId);

    //个人用户编辑信息接口
    void userUpdateDetailInfo(UserUpdateDetailInfoReqVO vo, String userId);

    //修改个人密码
    void updateUserPwd(UserUpdatePwdReqVO vo,String accessToken,String refreshToken);


}
